Campaign Manager - Best Practice Guides
Best Practice Guide - Implementing an Intra-Day Data StrategyIntroductionAlterian recognize the need to minimize downtime on an operational marketing system, and maximize flexibility for today’s marketing platform. Development over the coming releases will have functionality to better support high availability and near real-time responses as a theme at all levels of the Campaign Manager application. The aim of this best practice guide is to state what can be achieved in Campaign Manager 6.0, how it can be achieved and what, at this time, should be avoided.
Assumptions
Important Considerations
Column IndexingAs data is loaded, the default option is to load all fields indexed. Indexing has a performance overhead and to load the data as quickly as possible, a review of the indexing strategy is required, especially on the tables that will receive Intra-Day updates. The following should be considered when looking at column indexes on tables:
For new tables, to load fields as unindexed, the iLoader script data type is prefixed with a “U”. For Example:
For existing tables, the field can be set as unindexed via AMC -> Engine Repository. System House KeepingAny updates to the campaign key table will cascade a maintenance of links between it and all the child tables, including the campaign state tables. It is extremely important that the number of campaign state tables are monitored.
The State table retention policy can found in the Datasource configuration screen:
Additional benefits are will also be seen in campaign processing, pausing of campaigns and schema refreshes in Campaign Manager Campaign End Dates - Users must be educated about the implications of not setting the campaign end date, as this will lead to many campaign state tables being unnecessarily retained. Default End date is the same day as start for this reason. Test Campaigns Users must be educated about the implications of leaving campaigns running in test mode, unnecessary state tables and objects will be retained in the _TEST_TacticOutputTables database. Where applicable, users should end all test campaigns and clear the state tables. Tables stored in the _TEST_TacticOutputTables database should be routinely removed. Additional benefits will also be seen in campaign processing, pausing of campaigns and schema refreshes in Campaign Manager. Intra-Day Load ProcessThe following example represents a generic process to support the most popular business use cases that Alterian have been requested with respect to Intra-Day data updates. Administrators should cross reference with the Campaign Manager 6.0 Load Process Guide to assess if any of the stages from the full process are also required as part of their implementation, this section only discusses the key points. Stage 1 - Pause Campaigns
During the Intra-Day loads, tables will be locked and as such could have a cascading affect onto campaigns and would cause a one-off failure in Engines ability to process the audience so it is strongly recommended that campaigns are therefore paused and resumed during the Intra-Day load process, although it is not necessary to log all users off or disable data source. The pausing of campaigns does not affect the use of Campaign Manager for end users. They will be able to create new reports, queries, campaigns etc. but as noted, may get error messages when trying to execute them, if the underlying tables are locked during the data load. Alterian would stress that users should be made aware of the frequency of these updates and best practice would be to keep frequency to a minimum.
Stage 2 - Perform Data Load
Using existing iLoader best practices, an Intra-Day load to a table may now be performed, but again it is important to stress, that to minimize the Intra-Day load impact, this process must load a minimal set of fields and tables required for campaigns. Tables should be loaded as either updates (update and insert) or append only. Alterian recommend that Clients start with a critical subset. Once users start to create campaigns and the system reflects typical operation use, the system is replicated to a test environment and additional fields and tables can be tested. The frequency of Intra-Day loads will be determined by how quickly, Clients/Partners can supply the source data, but expectations should be set, that we are envisaging Intra-Day loads to run every 2-3 hours and not in the region of minutes which would likely be impractical with respect to time to pause/resume campaigns and impact on users. Data engineering should not be included in Intra-Day loads unless absolutely necessary as these columns will have to be completely re-created. Considerations should be given to existing engineering columns as altered above. Stage 3 - Resume Campaigns
Once the data load is complete, campaigns can be re-started. Scenario Discussion - Support for Intra-Day Addition of CustomersA new customer signs up on your website or registers via another method. This Customer needs to be contacted with a welcome message via Campaign Manager within the same business day. Data Load Solution
This scenario will undoubtedly have added complexity on a case-by-case basis, and as such, this section will be more in the way of a discussion on capabilities and considerations, rather than an outright solution. Contact the Alterian Professional Services team if assistance is required. This scenario enters into an area previously considered as out of scope with Engine, that is, adding a new row to a table during business as usual campaign activity. The iLoader Best Practice - Strategies for Loading Data Guide makes it clear that a Customer table would likely not be a candidate for Intra-Day rows appends with Engine. The main reason for this is the high volume of Data Engineering and Links that exist related to the Customer table. The adding of a relatively small number of rows Intra-Day in a batched method to the table itself would likely be very possible, but the subsequent invalidation of the dependent objects like engineering and links, would probably make this impractical and ill advised. Based on this, there is one recommended method to achieve this. That method is detailed in the following bullet points, but it must be stressed this is an overview and not a defined process, as variations in data and requirements may alter or expand this.
The following questions could affect the decision made:
It is important to remember that the unique ‘HistoryID’ column used as a key on the Campaign History tables is a concatenation of Campaign_Key and CreativeInstanceID. The CreativeInstanceID will be unique across keys but if the Campaign_Key has different values this would need to be matched to the Customer URN created by the data Warehouse to fully qualify the contact to a recipient.
FAQs
No. The Intra-Day updates will not cope with high volume appends to already large tables due to the level of indexing and data engineering that would have to be executed after the append.
This will be dependent on the number of customers in the table and the amount of data engineering. The best approach is likely to be an update to a separate table.
Not necessarily. Campaign Manager has a flexible event processing engine that can take event data, such as a dropped basket, including the details of the items in the basket, or even a product purchase, and react to that and respond to a known Customer without the need to append that data to an Engine table first. |
Online & Instructor-Led Courses | Training Videos | Webinar Recordings | ||
© Alterian. All Rights Reserved. | Privacy Policy | Legal Notice |